課程資訊
課程名稱
Python程式設計
Computer Programming in Python 
開課學期
111-2 
授課對象
 
授課教師
林澤佑 
課號
Data5006 
課程識別碼
946 U0060 
班次
01 
學分
3.0 
全/半年
半年 
必/選修
 
上課時間
星期二4,5,6(11:20~14:10) 
上課地點
綜604 
備註
屬於通識課程,限非電資學院學生選修。需自備筆電實作。。A6:量化分析與數學素養
總人數上限:60人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Python是近年來被廣泛使用在各種領域中的程式語言,其明確、優雅、簡潔的語法結構及程式碼的可讀性,更被許多人視為學程式語言的第一選擇。

本課程將從撰寫Python的環境建置開始,並講授各種語法的結構與使用時機。課程進度上,我們將逐一介紹 Python 中各種基本知識,並同時安排各種情境的練習,讓同學在解決假想問題中來累積撰寫 Python 程式的語法以及技巧。

我們將依照下面順序介紹課程內容:
1. 簡介 Python及本課程主要使用的撰寫平台 Colab
2. 講授 Python基本變數型態、語法結構以及一些我覺得重要的進階課題
3. 探索 Python 中最熱門的數個套件
4. 專題報告:選擇一個問題,介紹如何使用 Python 解決並透過各種方式呈現

本課程的最後,同學們將挑選一個題目進行期末專案報告(個人或分組),從介紹自己遇到並想解決的問題開始,接著分享如何透過 Python 解決,最後將結果透過各種視覺化的方式呈現。

=============
(2023/01/10更新) 本課程開放有限名額的加簽,希望加簽本課程者填寫下列表單:https://forms.gle/VMCpznrV3o8sbRTU6
登記截止時間為 2023/03/03 03:03 AM (台北,UTC + 8:00)

註:可三班次都選擇加簽,但至多只會獲得一次授權碼,因此,若選擇多於一個班次,則無法決定會得到哪個班次的授權碼,亦無法事後更換,填表時請慎選。  

課程目標
Python 作為近年來最流行的程式語言之一,可應用於各種領域,如資料科學、人工智慧、計算社會網絡等等。本課程將從 Python 環境的建置開始,逐步教授各種語法的結構與使用時機,並安排實際案例的練習,以輔助修課學生累積撰寫 Python 程式的技巧與經驗。同時,透過期末專案報告,讓修課學生選擇一個自己感興趣的問題,並介紹如何使用 Python 來解決,鞏固所學知識。本課程旨在讓同學能在未來遇到問題時,適當地使用 Python 程式語言來解決,並給予個人想法與建議的機會,以達成「自他共榮」的學習目標。 
課程要求
本課程建議具以下特點的人士修習:
1. 害怕寫程式
2. 想寫程式但是不知該從何開始
3. 有想打造的小應用/個人專案,但總是沒有時間來完成,或是想要一個呈現的舞台

本課程強烈不建議以下類型的人士修習:
1. 有任何程式經驗:本課程的教學風格與傳統程式設計課程有落差,若您有任何程式語言經驗,在學期中開始將有機會感受到學習上的不悅與負面感受
2. 不擅社交者:本課程評分項目包含小組期末專案,不接受個人單打獨鬥 
預期每週課後學習時數
Finite 
Office Hours
另約時間 
指定閱讀
待補 
參考書目
1. Fluent Python: Clear, Concise, and Effective Programming (1st Edition) by Luciano Ramalho
2. Introduction to Machine Learning with Python: A Guide for Data Scientists (1st Edition) by Andreas C. Müller, Sarah Guido
3. 政治大學磨課師課程:成為Python數據分析達人的第一課https://ctld.video.nccu.edu.tw/km/1399  
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
作業 
70% 
本課程約有8-12次作業,包含程式作業與選擇題作業 
2. 
小組期末專案 
30% 
期末專案相關事項將於課堂上公布  
3. 
[加分項目] 資料分析小專案 
5% 
若有志投入資料科學領域者,本課程提供一個實務但是簡單的機會,讓你嘗試進行自己的資料分析專案 並獲取額外的分數  
 
針對學生困難提供學生調整方式
 
上課形式
以錄影輔助
作業繳交方式
考試形式
其他
課程進度
週次
日期
單元主題
第1週
2/21  我是誰:講師介紹、Python 簡介和 Colab 基本設定 
第2週
2/28  No class 
第3週
3/07  我會做什麼:你的第一支 Python 程式  
第4週
3/14  我在做什麼:Python中的基本物件型態(type):int, float, str
我還能做什麼:Python中的容器型物件(type):list、tuple、set、dict 
第5週
3/21  缺什麼自己來:自定義函式(Function)  
第6週
3/28  流程控制:for-, while-, if-else  
第7週
4/04  No class 
第8週
4/11  文字在手,希望無窮:檔案讀取與字串(str)的處理與輸出  
第9週
4/18  疊床架屋:巢狀結構(Nested Structure)  
第10週
4/25  一些看起來像是向量和矩陣的酷東西:NumPy  
第11週
5/02  還有看起來像是表格的酷東西:Pandas
[加分項目] 迷你資料分析小專案開始日 
第12週
5/09  恐懼源於未知:例外處理  
第13週
5/16  邀請演講
[加分項目] 迷你資料分析小專案截止日 
第14週
5/23  期末報告  
第15週
5/30  期末報告  
第16週
6/06  期末報告